import java.io.Serializable;
import java.util.HashMap;
import java.util.HashSet;

public class CompteSociete extends Compte implements Serializable{
	
	// Attributes	
	private static final long serialVersionUID = 1L;
	private Societe _societe;
	private HashMap<String, DroitsMandataire> _mandataires; 

	
	public CompteSociete(int n, String t, float s, int d, Societe sos) {
		super(n,t,s,d);
		this.lierSociete(sos);
		this.setMandataires(new HashMap<String, DroitsMandataire>());
	}

	public void setSociete(Societe s)
	{_societe = s;}
	
	private void lierSociete(Societe s) {
		this.setSociete(s);
		s.rajoutCompte(this);
	}
	
	public Societe getSociete() {
		return(_societe);
	}
	
	public void setMandataires(HashMap<String, DroitsMandataire> dm)
	{_mandataires = dm;}
	

	
	public HashMap<String, DroitsMandataire> getMandataires() {return (_mandataires);}
	
	public int getNbMandataires() {return (getMandataires().size());}
	
	public void lierDroitsMandataire(DroitsMandataire dm){
		_mandataires.put(dm.getMandataire().getNom()+dm.getMandataire().getPrenom(), dm);
	}
	
	public void rajoutMandataire(Mandataire m, DroitsMandataire.droits dr, float rM){
		DroitsMandataire dm = new DroitsMandataire(dr, m, rM);
		this.lierDroitsMandataire(dm);
	}
	
	public String toString(){
		return "Compte "+this.getType()+" N°" + this.getNumero();
	}

	public DroitsMandataire getMandataire(String np) {
		return getMandataires().get(np);
	}

}
